package com.minimalist.lindi.service;

import com.minimalist.common.config.mybatis.bo.PageResp;
import com.minimalist.common.entity.lindi.po.LindiNews;
import com.minimalist.common.entity.lindi.vo.news.LindiNewsQueryVO;
import com.minimalist.common.entity.lindi.vo.news.LindiNewsVO;
import com.mybatisflex.core.service.IService;

/**
 * 林地指标交易平台_新闻表 服务层。
 *
 * @author 11987
 * @since 2025-04-02
 */
public interface LindiNewsService extends IService<LindiNews>{

    /**
     * 新增新闻
     *
     * @param newsVO 新闻
     */
    void addNews(LindiNewsVO newsVO);

    /**
     * 根据新闻ID删除新闻
     *
     * @param newsId 新闻ID
     */
    void deleteNewsByNewsId(Long newsId);

    /**
     * 根据新闻ID更新新闻
     *
     * @param newsVO 新闻
     */
    void updateNewsByNewsId(LindiNewsVO newsVO);

    /**
     * 根据条件查询新闻列表
     *
     * @param queryVO 条件查询
     * @return 新闻列表
     */
    PageResp<LindiNewsVO> getPageNewsList(LindiNewsQueryVO queryVO);

    /**
     * 根据新闻ID查询新闻详情
     *
     * @param newsId 新闻ID
     * @return 新闻详情
     */
    LindiNewsVO getNewsByNewsId(Long newsId);

    /**
     * 获取网站新闻封面轮播图列表
     *
     * @return 轮播图新闻列表
     */
    PageResp<LindiNewsVO> getCarouselNewsList();

    /**
     * 获取网站新闻列表（前台展示）
     *
     * @param queryVO 查询条件
     * @return 新闻列表
     */
    PageResp<LindiNewsVO> getWebsiteNewsList(LindiNewsQueryVO queryVO);

    /**
     * 获取新闻详情（前台展示）
     *
     * @param newsId 新闻ID
     * @return 新闻详情
     */
    LindiNewsVO getWebsiteNewsDetail(Long newsId);
}
